MDI a thready

Otázka od: tomsir1.edu@mail.cez.cz

15. 9. 2004 6:38


Ahoj,

mam MDI Child a z nej spoustim nekolik threadu a potreboval bych volat
metodu synchronize tak, aby se mi na prislusnem MDI Child okne menil napr.
ProgressBar. Problem je v tom, ze nejsem schopen dostat se k onomu
ProgressBaru. V SDI aplikaci to bylo pomerne jednoduche, kdy jsem pouze
nastavil MainForm.ProgressBar.Progress ... jenze tohoto prave nejsem
schopen dosahnout :O(
Zkousel jsem pristoupit k MDI Child oknu pres MDIChildren[ ] ... ale toto
bohuzel take nejde ... jak na to ?

Diky za napady
Radek




Odpovedá: Bronislav Klucka

15. 9. 2004 6:50


no, pokud mas
TForm1 = class(TForm)
  ProgressBar1:TProgressBar1
.
.
.
end;


tak by mohlo fungovat TForm1(MDIChildren[2]).ProgressBar1


Brona

>
> Ahoj,
>
> mam MDI Child a z nej spoustim nekolik threadu a potreboval
> bych volat metodu synchronize tak, aby se mi na prislusnem
> MDI Child okne menil napr.
> ProgressBar. Problem je v tom, ze nejsem schopen dostat se k
> onomu ProgressBaru. V SDI aplikaci to bylo pomerne
> jednoduche, kdy jsem pouze nastavil
> MainForm.ProgressBar.Progress ... jenze tohoto prave nejsem
> schopen dosahnout :O( Zkousel jsem pristoupit k MDI Child
> oknu pres MDIChildren[ ] ... ale toto bohuzel take nejde ...
> jak na to ?
>
> Diky za napady
> Radek
>
>
>
>
>
>
>


Odpovedá: tomsir1.edu@mail.cez.cz

15. 9. 2004 6:58


hm, tomu moc nerozumim ...
jestlize mam :

MDIMainForm -> MDIChildForm -> Ridici Thread => Podrizene Thready ...
jak na to napasuju to cos napsal, tak aby se mi na MDIChildForm zmenil
ProgressBar ... ?

Diky Radek





no, pokud mas
TForm1 = class(TForm)
  ProgressBar1:TProgressBar1
.
.
.
end;


tak by mohlo fungovat TForm1(MDIChildren[2]).ProgressBar1






Odpovedá: Bronislav Klucka

15. 9. 2004 7:29

Aha.... ja myslel, ze jen nedokazes ze synchronizacni methody adresovat
okno...
no, jak... udelas to tak, ze do threadu, pri create predas, jako parametr
formular
a pri synchronizaci budes s tim formularem pracovat. Nebo nesychronizuj, ale
posilej
Tebou definovane zpravy.


Brona

>
> hm, tomu moc nerozumim ...
> jestlize mam :
>
> MDIMainForm -> MDIChildForm -> Ridici Thread => Podrizene
> Thready ...
> jak na to napasuju to cos napsal, tak aby se mi na
> MDIChildForm zmenil ProgressBar ... ?
>
> Diky Radek
>
>
>
>
>
> no, pokud mas
> TForm1 = class(TForm)
> ProgressBar1:TProgressBar1
> .
> .
> .
> end;
>
>
> tak by mohlo fungovat TForm1(MDIChildren[2]).ProgressBar1
>
>
>
>
>
>
>
>
>
>
>
>


Odpovedá: tomsir1.edu@mail.cez.cz

15. 9. 2004 7:28


tak uz jsem na to prisel ... diky za nakopnuti ... spravne reseni je toto :
v threadu musim mit :

 Uses MainFrm, ChildWin

a metodu TChildWin.UpdateProgress volat takto :

(MainForm.MDIChildren[0] as
TMDIChild).UpdateProgress(MaxValue,CurrentProgress) ;

Diky radek



MDIMainForm -> MDIChildForm -> Ridici Thread => Podrizene Thready ...
jak na to napasuju to cos napsal, tak aby se mi na MDIChildForm zmenil
ProgressBar ... ?


no, pokud mas
TForm1 = class(TForm)
  ProgressBar1:TProgressBar1
.
.
.
end;


tak by mohlo fungovat TForm1(MDIChildren[2]).ProgressBar1